package com.wangp.mywrite.inwork.pattern._5._5_3_nested;

import com.wangp.mywrite.inwork.pattern.InitData;

/***
 * @author wangpeng
 * @since 2022-03-03  14:43
 */
public class SubNested {

    public static void main(String[] args) {
        // 在上述的正则匹配 ip 中，实际上并没有匹配出正确的 ip 地址。
        // 要找出符合条件的 ip 地址得满足以下条件
        // ❑ 任何一个1位或2位数字。
        // ❑ 任何一个以1开头的3位数字。
        // ❑ 任何一个以2开头、第2位数字在0~4之间的3位数字。
        // ❑ 任何一个以25开头、第3位数字在0~5之间的3位数字。

        // 对应的正则为：
        // \d{1,2}
        // 1\d{2}
        // 2[0-4]\d
        // 25[0-5]

        // \d{1,2}|1\d{2}|2[0-4]\d|25[0-5]
        String ipCommonReg = "((\\d{1,2})|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))";
        // (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))
        String ipReg = ("(" + ipCommonReg + "\\.){3}(" + ipCommonReg + ")");
        // (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))(\.(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))){3}
        String ipReg2 = "(" + ipCommonReg + ")" + "(" + "\\.(" + ipCommonReg + ")" + "){3}";
        // ipReg == ipReg2
        System.out.println(InitData.filterByRegexPattern(InitData.IP_LIST, ipReg));
        System.out.println(InitData.filterByRegexPattern(InitData.IP_LIST, ipReg2));
    }
}
